package cn.com.recode.b2找出泥团函数提取;

public class Rental {

    private Movie _movie;

    private int _daysRented;

    public Rental(Movie movie, int daysRented) {
        this._movie = movie;
        this._daysRented = daysRented;
    }

    public Movie getMovie() {
        return _movie;
    }

    public int getDaysRented() {
        return _daysRented;
    }


    /**
     * 因为Customer中不包含任何与 该方法相关的 信息。该方法与 Rental 对象有关，所以放在Rental类中
     * 函数应该放在它所使用的数据的 所属对象中 并赋予  相关寓意的名称
     * @param rental
     * @return
     */
    public double getCharge() {
        double thisAmout = 0;
        switch (getMovie().getPriceCode()) {
            case Movie.REGULAR:
                thisAmout += 2;
                if (getDaysRented() > 2) {
                    thisAmout += (getDaysRented() - 2) * 1.5;
                }
                break;
            case Movie.NEW_RELEASE:
                thisAmout += getDaysRented() * 3;
                break;
            case Movie.CHILDRENS:
                thisAmout += 1.5;
                if (getDaysRented() > 3) {
                    thisAmout += (getDaysRented() - 3) * 1.5;
                }
                break;
        }
        return thisAmout;
    }
}


